package com.framework.util;


import com.softcomputo.commons.exception.ValidacionRuntimeException;
import java.text.DecimalFormat;

/**
 * Esta clase tiene las validaciones de todo el modulo de la resolucion 4505
 * @author Luis Miguel
 * */
public class ValidadorArchivoUtils {
	
	/**
	 * Este metodo me permite validar el nit
	 * @param nit
	 * @return NIT:String - El nit a regresar debe devolverse sin digito de verificacion
	 * maximo son 12 caracteres, y si no cumple con esos 12 rellenar con ceros.
	 * @author Luis Miguel
	 * */	
	public static String validarNIT(String nit) throws Exception{
		nit = nit.trim();
		DecimalFormat decimalFormat = new DecimalFormat("000000000000");
		if (nit.matches("[0-9]*$") && !nit.isEmpty()) {
			return decimalFormat.format(Long.parseLong(nit)).toString();
		}else if(nit.matches("[0-9]*-[0-9]$") && !nit.isEmpty()){  
			if(nit.endsWith("-")){  
				nit = nit.replaceAll("-$", "");  
			}else
     			nit = nit.replaceAll("-[0-9]$", ""); 
			return decimalFormat.format(Long.parseLong(nit)).toString();
		}
		throw new ValidacionRuntimeException("Nit no valido: " + nit);
	}
   
	
	public static String validarCodigoAdministradora(String codigo) throws Exception{
		if(codigo.length() <= 6){return codigo;}
		throw new ValidacionRuntimeException("Código de la EPS o de la Direccion Territorial de Salud");
	}
   
   
}
